package type_conversion;

//int 和 String 的转换
public class Conversion {
    public static void main(String[] args) {
        //int -> String
        //方法一：int + 任意字符串(包括空字符串“”)，都会转为字符串
        int a = 10;
        int b = 20;
        String c = "和为" + a + b;//输出结果为和为1020，直接拼接不进行计算
        String c1 = "和为" + (a + b);//输出结果为和为30，(a + b)计算结果为30，在进行字符串拼接
        System.out.println(c);
        System.out.println(c1);
        //方法二：使用String类的valueOf方法
        int num = 200;
        String d =String.valueOf(num);//将数字200转换为数字字符串“200”
        System.out.println(d+10);//输出结果为20010

        //String -> int(有风险，String中可能包含非整型，类型转换异常)
        String str = "123456";
        System.out.println(str+1);//结果为1234561，未转为int类型，是字符串的 + 运算，结果是字符串的拼接
        int n = Integer.parseInt(str);//利用整型的包装类方法转为int
        System.out.println(n + 1);//结果为123457，已经转为int类型，是数字的 + 运算，结果是数字的相加

        String str1 = "12b46";
        int m = Integer.parseInt(str1);
        System.out.println(m);//String中包含非整型的数据，为非数字字符串，所以无法转换为int类型，编译报错
    }
}
